Setup

# install.packages("tidyverse")

library(tidyverse)

gapminder <- readRDS(here::here("data", "gapminder_dat.rds"))

gapminder_europe <- gapminder %>%
  filter(world_4region == "europe", time >= 1900, time <= 2024) %>%
  drop_na(gini)

gapminder_2020 <- gapminder %>%
  filter(time == 2020) %>%
  drop_na(world_6region, world_4region, country, gini, hapiscore_whr) %>% 
  arrange(desc(co2_cons))

Goal

Grafiken dienen stets einem bestimmten Zweck und richten sich an ein Publikum.

Beispiele:

  • Beitrag im Fachjournal für Wissenschaftler
  • Wahlergebnisse in der Wahl-Sondersendung
  • Werbeanzeige in der Tageszeitung
  • Post auf X

Je nach Zweck und Publikum kann eine Grafik mehr oder weniger gut geeignet sein.

Explanative vs. explorative Grafiken

Unterschiedliche Ziele von Grafiken

  • Explanativ: Die Grafik dient dazu, anderen einen bestimmten Sachverhalt (ein Muster in den Daten) zu kommunizieren
  • Explorativ: Die Grafik soll dabei helfen, bestimmte Sachverhalte (Muster in den Daten) zu erkennen

Der Fokus unseres Workshops lag bisher stark auf explanativen Grafiken

Nachfolgend werden Techniken für explorative Grafiken vorgestellt:

  • Prinzip des „small multiple“ anhand von faceting
  • Viele bivariate Zusammenhänge mit ggpairs()
  • Eine Serie gleicher Grafiken mit Funktion und Schleife erzeugen

Prinzip des “small multiple”

Die Technik des faceting erlaubt es, Grafiken gemäß Edward Tufte‘s Prinzip des small multiple zu erzeugen.

Prinzip des small multiple:

At the heart of quantitative reasoning is a single question: Compared to what? Small multiple designs, multivariate and data bountiful, answer directly by visually enforcing comparisons of changes, of the differences among objects, of the scope of alternatives. For a wide range of problems in data presentation, small multiples are the best design solution.

Tufte (1990). Envisioning Information. Graphics Press (p. 67).

Grafiken, die diesem Prinzip entsprechen, sind stets gleich aufgebaut und ermöglichen so einen schnellen Vergleich der dargestellten Information zwischen den einzelnen Grafiken.

Faceting in ggplot2

Es gibt zwei Funktionen für faceting in gglot2:

  • facet_grid(): Darstellung der Ergebnisse von Gruppen in
    • Zeilen oder
    • Spalten oder
    • einem Raster (grid) aus Zeilen und Spalten
  • facet_wrap(): Darstellung der Ergebnisse von Gruppen mit Zeilenumbruch (wrap)

Wichtig: Gruppe muss als diskrete Variable im Datensatz vorliegen

Faceting in ggplot2

ggplot(datasaurus_dozen, aes(x = x, y = y)) +
  geom_point() +
  theme_bg()

ggplot(datasaurus_dozen, aes(x = x, y = y)) +
  geom_point() +
  theme_bg() +
  facet_wrap(~dataset, ncol = 5)

Faceting in ggplot2

ggplot(datasaurus_dozen, aes(x = x, y = y)) +
  geom_point(aes(col = dataset), show.legend = F) +
  theme_bg()

ggplot(datasaurus_dozen, aes(x = x, y = y)) +
  geom_point(aes(col = dataset), show.legend = F) +
  theme_bg() +
  facet_wrap(~dataset, ncol = 5)

Viele bivariate Zusammenhänge mit ggpairs darstellen

- Dafür verwenden wir die Funktion ggpairs( Datensatz ) aus dem Paket GGally
- Es werden bivariate Zusammenhänge zwischen allen im Datensatz enthaltenen Variablen dargestellt

gapminder_auswahl <- gapminder %>%
  filter(time >= 1900, time <= 2024) %>%
  select(world_4region, gini, hapiscore_whr, lex, gdp_pcap) %>%
  drop_na(gini)

ggpairs(gapminder_auswahl, columns = 2:5)

Viele bivariate Zusammenhänge mit ggpairs darstellen

- In der Funktion können die ggplot-aesthetics angesprochen werden, sodass Ergebnisse nach Gruppenzugehörigkeit dargestellt werden können

ggpairs(gapminder_auswahl, columns = 2:5, aes(color = world_4region, alpha = .5))

Eine Serie gleicher Grafiken mit Funktion und Schleife erzeugen

  • Bisher haben wir stets Funktionen benutzt, die im Basis-R oder in den aktuell geladenen Paketen enthalten sind

  • Funktionen können jedoch auch selbst geschrieben und an die eigenen Bedürfnisse (z.B. eine bestimmte Grafik) angepasst werden

  • Mithilfe einer for-Schleife kann diese Funktion dann auf alle Variablen eines Datensatzes, auf alle Länder eines Datensatzes etc. angewendet werden. So entsteht eine Serie von Grafiken, die man schnell durchscrollen und auf Auffälligkeiten überprüfen kann